package lambda_language_implement;
/**
 * java8-lambda-实现原理
 * @author hsj
 *
 */
public class Lambda {   
    public static void PrintString(String s, Print<String> print) {
        print.print(s);
    }
    
    //实际的逻辑代码实现在外部类方法里面
    private static void lambda$0(String x) {
        System.out.println(x);
    }
    /**
     * 一个内部类
     * @author hsj
     *
     */
    final class $Lambda$1 implements Print{
        @Override
        public void print(Object x) {
        	Lambda.this.lambda$0((String)x);
        }
    }
    //执行入口
    public static void main(String[] args) {
    	//使用
        PrintString("test", new Lambda().new $Lambda$1());
    }
}
